package com.jwsoft.manager.common.vo.eduSchool;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.TableField;
import com.bifang.assistant.common.vo.BaseVO;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.jwsoft.manager.common.vo.eduEnrollmenBrochure.EduEnrollmenBrochureVO;
import com.jwsoft.manager.common.vo.eduEnrollmenBrochure.OtherAreaConfigNameVO;
import com.jwsoft.manager.common.vo.eduFormEnroll.EduFormEnrollVO;
import com.jwsoft.manager.common.vo.eduFormEnrollParams.EduFormEnrollParamsVO;
import com.jwsoft.manager.common.vo.eduSchoolConfig.EduSchoolConfigVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 所属学校表VO
 *
 * @author wangtao
 * @since 2022-11-25
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class EduSchoolVO extends BaseVO {

    @Schema(name = "orgId", description = "学校id")
    private String orgId;

    @Schema(name = "schoolNum", description = "学校代码")
    private String schoolNum;
    @Schema(name = "schoolCodeXj", description = "省学籍库学校代码")
    private String schoolCodeXj;
    @Schema(name = "schoolNameXj", description = "省学籍库学校名称")
    private String schoolNameXj;
    @Schema(name = "shortNameXj", description = "省学籍库简称")
    private String shortNameXj;
    @Schema(name = "schoolName", description = "学校名称")
    private String schoolName;

    @Schema(name = "shortName", description = "简称")
    private String shortName;

    @Schema(name = "schoolMaster", description = "校长")
    private String schoolMaster;

    @Schema(name = "masterPhone", description = "校长电话")
    private String masterPhone;

    @Schema(name = "creditCode", description = "统一社会信用代码")
    private String creditCode;

    @Schema(name = "phone", description = "手机号")
    private String phone;

    @Schema(name = "schoolNature", description = "学校性质0.公办 1.民办")
    private String schoolNature;

    @Schema(name = "schoolNature", description = "学校性质0.公办 1.民办")
    private String schoolNatureName;

    @Schema(name = "schoolCategory", description = "学校类别")
    private String schoolCategory;

    @Schema(name = "schoolCategory", description = "学校类别")
    private String schoolCategoryName;

    @Schema(name = "street", description = "所属街道")
    private String street;

    @Schema(name = "所属街道Name")
    private String streetName;

    @Schema(name = "centerFlag", description = "是否为中心学校1.是0.否")
    private String centerFlag;

    @Schema(name = "是否为中心学校1.是0.否")
    private String centerFlagName;

    @Schema(name = "talentApplyFlag", description = "是否人才可申请学校 1 是 0 否")
    private String talentApplyFlag;
    @Schema(name = "followFlag", description = "是否开通长幼随学 0 否 1是")
    private String followFlag;
    @Schema(name = "bindFlag", description = "是否开通捆绑摇号 0 否 1是")
    private String bindFlag;
    @Schema(name = "recruitStatus", description = "是否停止招生（1.正常，0.停止）")
    private String recruitStatus;

    @Schema(name = "是否停止招生（1.正常，0.停止）Name")
    private String recruitStatusName;

    @Schema(name = "longitude", description = "经度")
    private BigDecimal longitude;

    @Schema(name = "latitude", description = "纬度")
    private BigDecimal latitude;

    @Schema(name = "orderBy", description = "排序字段")
    private Integer orderBy;

    @Schema(name = "keySchoolFlag", description = "是否重点学校（1.是0.不是）")
    private String keySchoolFlag;

    @Schema(name = "是否重点学校（1.是0.不是）Name")
    private String keySchoolFlagName;


    @Schema(name = "priOrderBy", description = "排序民办学校")
    private Integer priOrderBy;

    @Schema(name = "virtualFlag", description = "是否虚拟学校（1.是0.不是）")
    private String virtualFlag;

    @Schema(name = "preFlag", description = "是否预报名（1.是0.不是）")
    private String preFlag;

    @Schema(name = "preNum", description = "预报名数量")
    private Long preNum;

    @Schema(name = "formalFlag", description = "是否正式报名（1.是0.不是）")
    private String formalFlag;

    @Schema(name = "status", description = "是否启用0.禁用1.启用")
    private String status;

    @Schema(name = "houseEndTimeNo", title = "不限房产截止时间 1 不限 0 限制")
    private String houseEndTimeNo;
    @Schema(name = "houseEndTime", title = "正学区房产截止时间")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date houseEndTime;
    @Schema(name = "houseEndTimeFw", title = "服务区房产截止时间")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date houseEndTimeFw;
    @Schema(name = "authOrderByNo", title = "不限审核和录取类别顺序 1 不限 0 限制")
    private String authOrderByNo;

    @Schema(name = "householdEndTimeNo", title = "不限户籍截止时间 1 不限 0 限制")
    private String householdEndTimeNo;
    @Schema(name = "householdEndTime", title = "正学区户籍截止时间")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date householdEndTime;
    @Schema(name = "householdEndTimeFw", title = "服务区户籍截止时间")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date householdEndTimeFw;
    @Schema(name = "serviceFlag", title = "是否开通服务区")
    private String serviceFlag;
    @Schema(name = "areaCode", description = "行政区划")
    private String areaCode;
    @Schema(name = "areaEnrollList", description = "可报名的区域")
    private List<String> areaEnrollList;
    @Schema(name = "areaCodeName", description = "行政区划")
    private String areaCodeName;


    @Schema(name = "areaName", description = "行政区划name")
    private String areaName;


    @Schema(name = "createName", description = "创建人")
    private String createName;

    @Schema(name = "createTime", description = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    @Schema(name = "enrollStatus", description = "全学段招生状态：未开放 招生中 已结束")
    private String enrollStatus;

    @Schema(name = "createTime", description = "学校存在上架中的招生方案")
    private Boolean hasEnrollFlag;
    @Schema(name = "createTime", description = "招生方案信息")
    private EduEnrollmenBrochureVO eduEnrollmenBrochureVO;
    @Schema(name = "enrollAreaConfigList", title = "根据招生类别区域控制")
    private List<OtherAreaConfigNameVO> enrollAreaConfigList;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Schema(name = "createTime", description = "招生开始时间")
    private Date startTime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @Schema(name = "createTime", description = "招生结束时间")
    private Date endTime;

    @Schema(name = "configList", description = "学校招生计划配置")
    private List<EduSchoolConfigVO> configList;
    @Schema(name = "formList", description = "学校表单配置信息")
    private List<EduFormEnrollVO> formList;
    @Schema(name = "formParams", description = "学校表单字段配置信息")
    private Map<String,List<EduFormEnrollParamsVO>> formParams;
    @Schema(name = "configSpecialList", description = "学校特殊通道大类")
    private List<EduSchoolConfigVO> configSpecialList;
    @Schema(name = "formSpecialList", description = "学校特殊通道小类")
    private List<EduFormEnrollVO> formSpecialList;
    @Schema(name = "formSpecialParams", description = "学校特殊通道字段配置信息")
    private Map<String,List<EduFormEnrollParamsVO>> formSpecialParams;
    @Schema(name = "appointFlag", description = "是否有城区E类 false 没有 true 有")
    private Boolean appointFlag;
    @Schema(name = "bbFlag", description = "是否补报（1.是0.不是）")
    private String bbFlag;
    @Schema(name = "qbFlag", description = "是否空额抢报（1.是0.不是）")
    private String qbFlag;
    @Schema(name = "mnFlag", description = "是否模拟报名名（1.是0.不是）")
    private String mnFlag;

    @Schema(name = "enrollNum", description = "计划招生人数")
    private Long enrollNum;
    @Schema(name = "applyNum", description = "报名人数")
    private Long applyNum;
    @Schema(name = "auditNum", description = "审核通过人数")
    private Long auditNum;
    @Schema(name = "admitNum", description = "录取人数")
    private Long admitNum;
    @Schema(name = "outNum", description = "调出人数")
    private Long fromNum;
    @Schema(name = "inNum", description = "调入人数")
    private Long toNum;
    @Schema(name = "fullFlag", description = "是否报满即止 1 是 0否")
    private String fullFlag;
    @Schema(name = "breakSchoolList", description = "突破学区学校id")
    private List<String> breakSchoolList;
    @Schema(name = "zsPhone", description = "招生咨询电话")
    private String zsPhone;
    @Schema(name = "zsContacts", description = "招生联系人")
    private String zsContacts;
}
